package com.codeblue.tools.codeGenerator;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;


/**
 * 抽象模板生成器
 * @author Administrator
 *
 */
public abstract class AbstractGenerator {
	
	/**
	 * 生成文件
	 * @param templateFile 模板文件名
	 * @param outPutFile  输出文件名 
	 * @param data  输入模板数据
	 */
	public void  genFile(String templateFile,String outPutFile,Object data){
		try {
			Project project = new Project();
			configProjectSetting(project);
			Configuration cfg = new Configuration();
			cfg.setDirectoryForTemplateLoading(new File(project
					.getTemplatePath()));
			Template template =  cfg.getTemplate(templateFile);  
			 
			 
			 //输出
			 Writer out = new FileWriter(outPutFile);
			 template.process(data,out);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
		
	}
	
	
	/**
	 * 配置项目路径
	 * @param project
	 */
	public void configProjectSetting(Project project) {
		project.setProjectName("wsq");
		project.setSrc_diskPath("E:\\workspace\\wsq\\src\\com\\wsq\\biz");
		project.setJsp_disPath("E:\\workspace\\wsq\\WebRoot\\WEB-INF\\view\\system_manage");
		project.setJs_diskPath("E:\\workspace\\wsq\\WebRoot\\web\\js");
		project.setTemplatePath("E:\\workspace\\wsq\\src\\com\\wsq\\common\\tools\\codeGen\\template");
		project.setMapperInterfacePath("E:\\workspace\\wsq\\src\\com\\wsq\\db\\mapper");
		project.setMapperPath("E:\\workspace\\wsq\\src\\com\\wsq\\db\\sqlmap");
	}
}
